﻿#ifndef __GAF_SYSINCDEF_WIN32_H__
#define __GAF_SYSINCDEF_WIN32_H__

#include <stdlib.h>
#include <stdio.h>
#include <stdarg.h>
#include <memory.h>
#include <io.h>
#include <iostream>
#include <fstream>

#include <string>
#include <vector>
#include <map>

#pragma WARNING(disable:4996)		// 忽略安全函数警告

// 类型
#define _STRING				std::string
#define _VECTOR				std::vector
#define _MAP				std::map

// 数据流类型
#define _FSTREAM			std::fstream
#define _IFSTREAM			std::ifstream
#define _OFSTREAM			std::ofstream

// 控制台输出操作
#define _COUT				std::cout
#define _CIN				std::cin
#define _ENDL				std::endl

// 控制台输出操作
#define _PRINTF				printf
#define _SPRINTF			sprintf
#define _VSNPRINTF			vsnprintf //_vsnprintf_c

// 内存操作
#define _MALLOC				malloc
#define _FREE				free
#define _MEMSET				memset
#define _MEMCMP				memcmp
#define _MEMCPY				memcpy
#define _MEMMOVE			memmove

// char字符串操作
#define _STRCPY				strcpy
#define _STRCAT				strcat
#define _STRCMP				strcmp
#define _STRLEN				strlen

// 可变参数操作
#define	_VA_LIST__			va_list
#define _VA_START			va_start
#define _VA_ARG				va_arg
#define _VA_END				va_end

// 文件目录系统操作
#define _FINDDATA			_finddata_t
#define _FINDFIRST			_findfirst
#define _FINDNEXT			_findnext
#define _FINDCLOSE			_findclose

#define _FS_KIND_DIR			_A_SUBDIR
#define _FS_KIND_FILE			_A_ARCH
#define _FS_DIR_ERROR			-1l
#define _FS_DIR				long
#define _FS_DATA			_finddata_t
#define _FS_OPEN(_szPath, _DIR, _DATA)	(_DIR = _findfirst(_szPath, &_DATA))
#define _FS_READ(_DIR, _DATA)		_findnext(_DIR, &_DATA)
#define _FS_CLOSE(_DIR)			_findclose(_DIR)

#define _FS_DATA_NAME(_DATA, _strName)	_DATA.name
#define _FS_DATA_SIZE(_DATA, _nSize)	_DATA.size
#define _FS_DATA_ISKIND(_DATE, _KIND)	(((_DATE.attrib & _KIND) == _KIND) ? true : false)



#endif
